package com.tfswx.fljdmxyy.service;

import com.tfswx.fljdmxyy.dto.sjzd.*;
import com.tfswx.fljdmxyy.query.sjzd.FldmQueryParam;
import com.tfswx.fljdmxyy.query.sjzd.FldmQueryResult;
import com.tfswx.fljdmxyy.query.sjzd.FldmlbQueryParam;
import com.tfswx.fljdmxyy.query.sjzd.FldmlbQueryResult;

import java.util.List;

/**
 * 数据字典服务
 *
 * @Author 陈文佳
 * @Date 2023/03/24
 */
public interface SjzdService {

    /**
     * 查询分类代码
     *
     * @param dto 查询分类代码入参
     * @return FldmGetOutputDTO 查询分类代码出参
     */
    FldmGetOutputDTO getFldm(FldmGetInputDTO dto);

    /**
     * 添加分类代码类别
     *
     * @param dto 添加分类代码类别入参
     * @return FldmlbAddOutputDTO 添加分类代码类别出参
     */
    FldmlbAddOutputDTO addFldmlb(FldmlbAddInputDTO dto);

    /**
     * 获取分类代码类别
     *
     * @param param 获取分类代码类别入参
     * @return List<FldmlbQueryResult> 获取分类代码类别出参
     */
    List<FldmlbQueryResult> queryFldmlb(FldmlbQueryParam param);

    /**
     * 修改分类代码类别
     *
     * @param dto 修改分类代码类别入参
     * @return Boolean 修改分类代码类别出参
     */
    Boolean updateFldmlb(FldmlbUpdateInputDTO dto);

    /**
     * 添加分类代码
     *
     * @param dto 添加分类代码入参
     * @return FldmAddOutputDTO 添加分类代码出参
     */
    FldmAddOutputDTO addFldm(FldmAddInputDTO dto);

    /**
     * 删除分类代码类别
     *
     * @param dto 删除分类代码类别入参
     * @return Boolean 删除分类代码类别出参
     */
    Boolean deleteFldmlb(FldmlbDeleteInputDTO dto);

    /**
     * 获取分类代码列表
     *
     * @param param 获取分类代码列表入参
     * @return List<FldmQueryResult> 获取分类代码列表出参
     */
    List<FldmQueryResult> queryFldm(FldmQueryParam param);

    /**
     * 修改分类代码
     *
     * @param dto 修改分类代码入参
     * @return Boolean 修改分类代码出参
     */
    Boolean updateFldm(FldmUpdateInputDTO dto);

    /**
     * 查询分类代码类别
     *
     * @param dto 查询分类代码类别入参
     * @return FldmlbGetOutputDTO 查询分类代码类别出参
     */
    FldmlbGetOutputDTO getFldmlb(FldmlbGetInputDTO dto);

    /**
     * 删除分类代码
     *
     * @param dto 删除分类代码入参
     * @return Boolean 删除分类代码出参
     */
    Boolean deleteFldm(FldmDeleteInputDTO dto);
}